<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        // class Box{
        //     // 不直接支持私有
        //     private name='blue';
        // }
        // 实现 name 的私有
        const Box = (function () {
            let name = '小青';
            return class {
                get name() {
                    return `名为${name}`;
                }
                set name(val) {
                    mame = val;
                }
            }
        })()
        let box = new Box();
        box.mame = '柚子';
        console.log(box);
        // 立即执行函数不算闭包
        // 闭包就是能够读取其他函数内部变量的函数。
        // 例如在javascript中，只有函数内部的子函数才能读取局部变量，
        // 所以闭包可以理解成“定义在一个函数内部的函数“。
        // 在本质上，闭包是将函数内部和函数外部连接起来的桥梁。
    </script>
</body>

</html>